<?
//安装mysql 然后创建数据库
/*解决mysql不是内部命令也不是可运行的程序，在环境变量中加入mysql的安装目录，分隔符用分号*/
//9.5权限系统
//最少权限原则：一个用户（或者一个进程）应该拥有能够执行分配给他的任务的最低级别的权限
//9.5.2 创建用户 grant和revoke 全局、数据库、表、列
/*
grant all on * .* to luphper identified by 'luhao0701' with grant option;
show grants for luphper;
revoke all on *.* from luphper;
grant usage on lustudy.* to zhouwei identified by '123456';
show grants fron zhouwei;
grant select,update on lustudy to zhouwei;
show grants from zhouwei;
revoke update on lustudy from zhouwei;
show grants for zhouwei;
revoke all on lustudy.* from zhouwei;
show grants for zhouwei;
【此处有一个疑问为什么使用identified by 之后的密码在cmd命令提示符那里无法登录，而不输入密码反而可以登录的是一个没有任何权限的账户】
因为在创建grant的时候没有对他的域进行说明。而且在mysql的user表里 有一条空用户名空密码域为localhost的记录影响了，删除掉就
不会出现直接输入mysql就进入匿名账户的问题了。或者grant的时候加上@localhost
然后执行了一个delete from mysql.user where user !='root';*/
/*9.6创建一个web用户*/
//grant select,delete,update,insert on lustudy.* to lustudy_web identified by '123456';
//还是在这上边写再复制过去吧  容易修改


/*cerate table customers(
customerid int unsigned not null auto_increment primary key,
name char(50) not null,
address char(100) not null ,city char(30) not null
);
create table orders(
orderid int unsigned not null auto_increment primary key,
customerid int unsigned not null ,
amout float(6,2),
date date not null
);
create table books(
isbn char(13) not null primary key,
author char(50),
title char(100),
price float(4,2)
);
create table order_items(
orderid int unsigned not null,
isbn char(13) not null,
quantity tinyint unsigned,
primary key(orderid,isbn)
);


create table book_reviews(
isbn char(13) not null primary key,
review text
);

//虽然varchar的存储空间更小但是char的速度更快
//not null 可以优化【优化速度】
//查看一个表用describe 例如：describe customers;【很有用】


对于列名，SQL不区分大小写，但是不能在同一个语句中使用不同的大小写。
//177页说到一个mysqladmin 没搞懂，第二次迭代的时候再看吧。

//使用后引号``可以使用特殊字符，请使用有意义的标识符
//选择列数据类型的原则是选择能满足条件最小的类型，而不是为了方便选择较大的

//浮点类的（M，D）D的范围为（-2，30）
//所有的数字类型可以指定 zerofill 用0来填充空值。如果是zerofill那么就是unsigned类型
//bit=bool=tinyint
//float后面不加括号就是可变的浮点数

//如果不手动设置，特定行的timestamp将被设置为最近修改改行的日期和时间

/*9.10.3字符串类型*/
//第一类 char varchar，char会自动填补空白，varchar会随列宽自动变化 但是比较慢
//第二类 next 和 blob  TEXT区分大小写 blob（大二进制）不区分大小写
//第三类 set和enum set指定指定列中的值必须来自一个指定集合中的值  最大64个
//		enum枚举，该类型的列可以只有一个制定集合中的值或者null   最大65535

//fopen("unit10.php","w");

?>